sacjamm 0 Denunciar post Postado Setembro 21, 2016 Olá prezados,Estou com um desafio, tenho um sistema de Filtro para fazer em um sistema web. E o desafio é o seguinte, irei enviar uma imagem pra explicar melhor: A imagem ficou muito grande, mais enfim, preciso fazer esse filtro, com a data de nascimento, eu já tentei fazer mais não bate certo a pesquisa, então se tiver alguém aí que tenha um sql, simples e util que possa fazer essa busca entre as 2 datas juntamente com os outros campos, eu agradeço. Atenciosamente, Alisson Maciel Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Setembro 21, 2016 Como está a query que supostamente não funciona? Compartilhar este post Link para o post Compartilhar em outros sites
sacjamm 0 Denunciar post Postado Setembro 21, 2016 Segue a query que não funciona $readUser = new Read; $readUser->FullRead("SELECT * FROM {$this->Table} WHERE user_status = 1 AND user_cpf LIKE '%' :cpf '%' AND user_name LIKE '%' :nome '%' AND user_nasc BETWEEN :user_nasc AND :user_nasca", "nome={$nome}&cpf={$cpf}&user_nasc={$user_nasc}&user_nasca={$user_nasca}"); if ($readUser->getResult()): return $readUser->getResult(); endif; Eu faço o select dentro de uma classe, e apenas instancio a classe com o metodo na pagina que quero fazer a busca Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Setembro 21, 2016 E exatamente qual o comportamento disto tudo? O que ocorre se $user_nasc ou $user_nasca estiver em branco? Compartilhar este post Link para o post Compartilhar em outros sites
sacjamm 0 Denunciar post Postado Setembro 21, 2016 Vai permanecer em branco porem nao vai consultar eu acho, eu queria entender mais, porque eu acho que se eu estiver fazendo dessa forma, os campos de data, ficarão dependentes dos outros campos e se estiverem em branco dará erro. Não sei se estou certo, mais preciso de uma solução bem viavel, e funcional. Tem condição de você me informar uma solução e explicar o porque de tal solução? Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Setembro 21, 2016 Deixa eu ver se eu entendi, você tá usando uma coisa que você não tem a mínima ideia de como funciona? Complicado... Uma solução "viável e funcional", popular gambiarra, verifique se o campo está em branco e atribua uma valor padrão à ele. Na data inicial coloque uma data antiga (01/01/1900) no campo da data final coloque a data atual, pronto, isso garante que os campos sempre estejam preenchidos... Observe também que os campos de data (se estiverem bem modelados) tem o padrão aaaa-mm-dd, logo, você terá que garantir que esse padrão esteja correto na query. Compartilhar este post Link para o post Compartilhar em outros sites
leodeavizdesigner 0 Denunciar post Postado Setembro 22, 2016 ok mas o filtro é Between mesmo? já que vai buscar somente a data de nascimento exata faz um like normal EXEMPLO: dia_vencimento LIKE '%".$dia_vencimento."%' e insere uma condição if se $var == 0000-00-00 { false; }else { echo $var; } se for utilizar Between sempre faça um if para não dar conflito. Compartilhar este post Link para o post Compartilhar em outros sites
sacjamm 0 Denunciar post Postado Setembro 22, 2016 Não posso usar like, pois a preferencia é a data, então se o cliente for epsquisar na data, ele terá de achar as datas entre uma e outra. Ele não vai ter de cabeça a data exata, são vários clientes. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Setembro 22, 2016 isso aqui também não irá funcionar: "'%' :nome '%'" Está separando dois apóstrofos cada. Além do mais, não devem ser inseridos apóstrofos, o correto pode ser visto no link abaixo:http://php.net/manual/pt_BR/pdostatement.bindparam.php#99698 Compartilhar este post Link para o post Compartilhar em outros sites
sacjamm 0 Denunciar post Postado Setembro 22, 2016 Entendi Gabriel, eu já utilizo um sistema de busca dessa forma, mais realmente vi no site que me enviou a forma correta, eu vou corrigir Compartilhar este post Link para o post Compartilhar em outros sites